#pragma once

#include "SceneNode.h"
#include "OctreePublic.h"

class OctreeNode : public SceneNode
{
public:
	OctreeNode(const std::string& name, Scene* owner);
	virtual ~OctreeNode(void);

	const FOctreeElementId& getOctreeID() const { return mOctreeId; }
	void setOctreeID(const FOctreeElementId& v) { mOctreeId = v; }

	virtual void setVisible(bool v);

protected:
	virtual void UpdateImpl();

private:
	FOctreeElementId mOctreeId;
	
	void AddToScene();
	void RemoveFromScene();
};
